package com.hengpeng.itfinbase.persist;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Enumerated;

import com.hengpeng.common.web.annotation.HtmlInput;
import com.hengpeng.common.web.annotation.HtmlInputPattern;
import com.hengpeng.common.web.annotation.HtmlInputType;
import com.hengpeng.itfinbase.en.InvestStatus;
import com.hengpeng.itfinbase.idAssign.AbstractAssign18IdEntity;
import com.hengpeng.itfinbase.persist.UserInfo.UserLevel;

/**
 * <pre>
 * 投标信息表
 * </pre>
 * 
 * @author chenhui
 * @version 1.0, 2015-5-18
 */
@Entity
public class InvestInfo extends AbstractAssign18IdEntity {
    /**
	 * 
	 */
    private static final long serialVersionUID = -1245287782798105592L;

    /**
     * 投标用户名
     */
    @HtmlInput(label = "投标人", maxLength = 50, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private String investUserName;

    /**
     * 投标用户id
     */
    @HtmlInput(label = "投标用户id", maxLength = 50, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private Long investUserId;

    @Column(length = 20)
    @Enumerated(javax.persistence.EnumType.STRING)
    @HtmlInput(label = "投标人等级", type = HtmlInputType.SELECT, nullable = true, labelProperty = "text", index = 18)
    private UserLevel userLevel;

    /**
     * 投标用户托管账户id
     */
    @HtmlInput(label = "投标用户托管账户id", maxLength = 50, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private String investUserTrustAccountId;

    /**
     * 汇付冻结标识
     */
    @HtmlInput(label = "汇付冻结标识", maxLength = 500, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private String freezeTrxId;

    /**
     * 借款信息id
     */
    @HtmlInput(label = "借款信息id", maxLength = 50, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private Long borrowInfoId;

    /**
     * 借款标的名称
     */
    @HtmlInput(label = "借款标的名称", maxLength = 500, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private String borrowName;

    /**
     * 投标金额，单位：分
     */
    @HtmlInput(label = "投标金额", type = HtmlInputType.TEXT, index = 4, pattern = HtmlInputPattern.INT, nullable = false)
    private Long investMoney;
    /**
     * 使用红包的id
     */
    private Long redPacketId;

    /**
     * 投标时间
     */
    @HtmlInput(label = "投标时间", type = HtmlInputType.TEXT, index = 7, pattern = HtmlInputPattern.INT)
    private Date investTime;

    /**
     * 投标状态
     */
    @Column(length = 20)
    @Enumerated(javax.persistence.EnumType.STRING)
    @HtmlInput(label = "状态", type = HtmlInputType.HIDDEN, labelProperty = "text", index = 7)
    private InvestStatus status;

    /**
     * 更新时间
     */
    @HtmlInput(label = "更新时间", maxLength = 50, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private Date updateTime;

    /**
     * 放款时间
     */
    @HtmlInput(label = "放款时间", maxLength = 50, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private Date loanTime;

    /**
     * 撤标时间
     */
    @HtmlInput(label = "撤标时间", maxLength = 50, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private Date cancelTime;

    /**
     * 创建时间
     */
    @HtmlInput(label = "创建时间", maxLength = 50, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private Date createTime;

    /**
     * 流标放款解冻订单号
     */
    @HtmlInput(label = "流标放款解冻订单号", maxLength = 500, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private String unFreeOderId;

    /**
     * 投标冻结订单号
     */
    @HtmlInput(label = "投标冻结订单号", maxLength = 500, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private String freeOderId;

    /**
     * 当前投标债权人
     */
    @HtmlInput(label = "当前投标债权人", maxLength = 50, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private Long nowOwnUserId;

    /**
     * 当前投标债权人姓名
     */
    @HtmlInput(label = "当前投标债权人姓名", maxLength = 50, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private String nowOwnUserName;

    /**
     * 当前投标债权人托管账户id
     */
    @HtmlInput(label = "当前投标债权人托管账户id", maxLength = 50, type = HtmlInputType.TEXT, index = 1, nullable = false)
    private String nowOwnUserTrustAccountId;

    public Long getRedPacketId() {
        return redPacketId;
    }

    public void setRedPacketId(Long redPacketId) {
        this.redPacketId = redPacketId;
    }

    public String getNowOwnUserName() {
        return nowOwnUserName;
    }

    public void setNowOwnUserName(String nowOwnUserName) {
        this.nowOwnUserName = nowOwnUserName;
    }

    public String getNowOwnUserTrustAccountId() {
        return nowOwnUserTrustAccountId;
    }

    public void setNowOwnUserTrustAccountId(String nowOwnUserTrustAccountId) {
        this.nowOwnUserTrustAccountId = nowOwnUserTrustAccountId;
    }

    public Long getNowOwnUserId() {
        return nowOwnUserId;
    }

    public void setNowOwnUserId(Long nowOwnUserId) {
        this.nowOwnUserId = nowOwnUserId;
    }

    public String getFreeOderId() {
        return freeOderId;
    }

    public UserLevel getUserLevel() {
        return userLevel;
    }

    public void setUserLevel(UserLevel userLevel) {
        this.userLevel = userLevel;
    }

    public void setFreeOderId(String freeOderId) {
        this.freeOderId = freeOderId;
    }

    public String getUnFreeOderId() {
        return unFreeOderId;
    }

    public void setUnFreeOderId(String unFreeOderId) {
        this.unFreeOderId = unFreeOderId;
    }

    public Date getLoanTime() {
        return loanTime;
    }

    public void setLoanTime(Date loanTime) {
        this.loanTime = loanTime;
    }

    public String getInvestUserTrustAccountId() {
        return investUserTrustAccountId;
    }

    public void setInvestUserTrustAccountId(String investUserTrustAccountId) {
        this.investUserTrustAccountId = investUserTrustAccountId;
    }

    public Date getCancelTime() {
        return cancelTime;
    }

    public void setCancelTime(Date cancelTime) {
        this.cancelTime = cancelTime;
    }

    public String getInvestUserName() {
        return investUserName;
    }

    public void setInvestUserName(String investUserName) {
        this.investUserName = investUserName;
    }

    public String getBorrowName() {
        return borrowName;
    }

    public void setBorrowName(String borrowName) {
        this.borrowName = borrowName;
    }

    public Long getBorrowInfoId() {
        return borrowInfoId;
    }

    public void setBorrowInfoId(Long borrowInfoId) {
        this.borrowInfoId = borrowInfoId;
    }

    public Long getInvestMoney() {
        return investMoney;
    }

    public void setInvestMoney(Long investMoney) {
        this.investMoney = investMoney;
    }

    public Date getInvestTime() {
        return investTime;
    }

    public void setInvestTime(Date investTime) {
        this.investTime = investTime;
    }

    public InvestStatus getStatus() {
        return status;
    }

    public void setStatus(InvestStatus status) {
        this.status = status;
    }

    public Long getInvestUserId() {
        return investUserId;
    }

    public void setInvestUserId(Long investUserId) {
        this.investUserId = investUserId;
    }

    public String getFreezeTrxId() {
        return freezeTrxId;
    }

    public void setFreezeTrxId(String freezeTrxId) {
        this.freezeTrxId = freezeTrxId;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}
